package com.packet.cheng.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 @author zaicheng
 @version 1.0
 @date 2022-04-19
 @email zzc15847256473@163.com
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface RedisLock {

    /**
     * key的前缀，默认是方法全限定名(包名加方法名)
     * @return
     */
    String  prefixValue() default "";

    /**
     *  EL表达式
     */
    String key();

    /**
     * 等待锁的时间，默认是-1，不等待直接失败，redission默认也是-1，
     */
    int waitTime() default -1;


    /**
     * 等待锁的时间单位，默认毫秒
     */
    TimeUnit unit() default TimeUnit.MILLISECONDS;
}
